#include <jni.h>
#include <string>
#include "AVL.hpp"
#include <android/log.h>

// 打印函数
void visit(int key, int value) {
    __android_log_print(ANDROID_LOG_ERROR, "TAG", "key = %d , value = %d", key, value);
}

extern "C"
JNIEXPORT jstring

JNICALL
Java_com_ndk_day45_MainActivity_stringFromJNI(
        JNIEnv *env,
        jobject /* this */) {

    AVL<int, int> *avl = new AVL<int, int>();
    avl->put(3, 3);
    avl->put(2, 2);
    avl->put(1, 1); // 需要右旋，将3右旋。
    avl->put(4, 4);
    avl->put(5, 5); // 需要左旋，将3左旋。4变成节点，3左节点。

    avl->levelTraverse(visit); // 层序遍历

    std::string hello = "Hello from C++";
    return env->NewStringUTF(hello.c_str());
}
